#include<bits/stdc++.h>
using namespace std;
struct cars
{
    int d,a;
    int v;
}c[100005];
bool clo[1005];
int T;
int n,m,len;
double lv;
int p[1005];
bool pu[1005];
void all_open(int maxp)
{
    bool md=false;
    int ansa=0,mina=100005,maxa=0;
    for(int i=0;i<n;i++)
    {
        if(c[i].v<=lv)
        {
            continue;
        }
        else if(c[i].d<maxp)
        {
            md=true;
            ansa++;
        }
    }
    if(!md)
    {
        cout<<0<<' '<<m<<endl;
        return;
    }
    cout<<ansa<<' '<<m-1<<endl;
    return;
}
int main()
{
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    cin>>T;
    for(int ti=0;ti<T;ti++)
    {
        cin>>n>>m>>len>>lv;
        for(int i=0;i<n;i++)
        {
            cin>>c[i].d>>c[i].v>>c[i].a;
        }
        int maxp=0;
        for(int i=0;i<m;i++)
        {
            cin>>p[i];
            maxp=max(maxp,p[i]);
        }
        all_open(maxp);
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}
